package com.jabm.cmaq.negocio.impl;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;

import com.jabm.cmaq.dao.CMaqHerHistoricoDAO;
import com.jabm.cmaq.modelo.CMaqHerHistorico;
import com.jabm.cmaq.modelo.CMaqHerramientas;
import com.jabm.cmaq.negocio.interfaces.ICMaqHerHistoricoManager;
/**
 *  Capa de gestion para la entidad de Herramientas.
 *  Copyright: Copyright (c) 2014
 *  Company:
 *  @author jabastias
 *  @version 1.0
 */
public class CMaqHerHistoricoManagerImpl  implements ICMaqHerHistoricoManager{
	
		
	/**
	 * DAO para la realizacion de las operciones CRUD sobre CMaqHerramientas.java
	 */
	private CMaqHerHistoricoDAO iMaqHerDAO;

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#insertarHerramientas(com.jabm.cmaq.modelo.CMaqHerramientas)
	 */
	public void insertarMaqHers(CMaqHerHistorico maqher) {
		iMaqHerDAO.insertar(maqher);		
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#modificarHerramientas(com.jabm.cmaq.modelo.CMaqHerramientas)
	 */
	public void modificarMaqHers(CMaqHerHistorico maqher) {
		iMaqHerDAO.modificar(maqher);			
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#borrarHerramientas(com.jabm.cmaq.modelo.CMaqHerramientas)
	 */
	public void borrarMaqHers(CMaqHerHistorico maqher) {
		iMaqHerDAO.borrar(maqher);
		
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#buscarHerramientas(int)
	 */
	public CMaqHerHistorico buscarMaqHers(int id) {
		return iMaqHerDAO.buscar(id);
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerramientasManager#listarTodasHerramientas()
	 */
	public List<CMaqHerHistorico> listarTodasMaqHers() {
		return iMaqHerDAO.listarTodos();
	}

	/**
	 * @return the iMaqHerDAO
	 */
	public CMaqHerHistoricoDAO getiMaqHerDAO() {
		return iMaqHerDAO;
	}

	/**
	 * @param iMaqHerDAO the iMaqHerDAO to set
	 */
	public void setiMaqHerDAO(CMaqHerHistoricoDAO iMaqHerDAO) {
		this.iMaqHerDAO = iMaqHerDAO;
	}

	/* (non-Javadoc)
	 * @see com.jabm.cmaq.negocio.interfaces.ICMaqHerHistoricoManager#filtrarMaqHer(com.jabm.cmaq.modelo.CMaqHerHistorico)
	 */	
	public List<CMaqHerHistorico> filtrarMaqHer(CMaqHerHistorico cmaqh) {

		  //Se genera la sql
		String sql = "from " + CMaqHerHistorico.class.getName() + " hermaq where 1=1";
				
		if(cmaqh.getTipo() != null && !"".equals(cmaqh.getTipo())) {
			
			if("HER".equals(cmaqh.getTipo())) {
				
				sql = sql + " and hermaq.tipo = 'HER'";
			
			} else {
				
				sql = sql + " and hermaq.tipo = 'MAQ'";
				
			}
			
		}
		
		if(cmaqh.getFecha() != null){
			
			Calendar calen = Calendar.getInstance();
			
			calen.setTime(cmaqh.getFecha());
			
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");			
			
			sql = sql + " and hermaq.fecha >= '"+sdf.format(calen.getTime())+"'";

			calen.add(Calendar.DAY_OF_MONTH, calen.get(Calendar.DAY_OF_MONTH) + 1);
			
			sql = sql + " and hermaq.fecha <= '"+sdf.format(calen.getTime())+"'";

		}
		
		sql = sql + " ORDER BY hermaq.fecha DESC"; 
		
		return this.iMaqHerDAO.filtrar(sql);
	}

	

}
